1. Field of the Invention
The present invention relates to an error detecting code addition circuit that adds an error detecting code to data to be stored in a disc, an error detection circuit and method that detect an error in data read from a disc, and a disc apparatus that includes an error detecting code addition circuit and/or an error detection circuit.
2. Description of Related Art
Following so-called 1st generation optical discs such as CD, CD-R/RW and CD-ROM and 2nd generation optical discs such as Digital Versatile Disc (DVD), so-called 3rd generation optical disc that is Blu-ray discs with a shorter light source wavelength of 405 nm (blue-violet light) has been developed (cf. “Next generation optical disc” Nikkei Electronics Books, Oct. 7, 2003). The Blu-ray discs allows reading and writing record marks at a recording density of about five times that of DVD by increasing the numerical aperture (NA) of an objective lens to 0.85 to reduce a beam spot area to about one-fifth that of DVD in addition to shortening a light source wavelength. Further, Blu-ray discs have a phase change recording layer that is covered with a transparent covering layer of 0.1 mm thick and placed on a disc substrate, thereby reducing aberration due to the relative inclination of a disc and laser light.
While the 3rd generation optical discs that have a high recording density and include a thin covering layer has a large recording capacity, the effect of burst errors is more significant than in the 2nd generation optical discs or the like in spite of the same defect size, for example.
Normally, when recording digital data on an optical disc, an error correcting code (ECC) is added and record encoding processing is performed for easy reproduction. In the case of Blu-ray disc where data is recorded at a high density, complex processing is required for error correction or the like in order to read data accurately.
An error correction block, which is referred to hereinafter as the ECC block, is composed in units of 64-Kbyte user data. Input user data is 2052-byte logical sector where 4-byte error detection code (EDC) is added to 2048-byte user data. The ECC block is composed of 32 logical sectors (code string) and auxiliary data (picket code) that is embedded at regular intervals in order to prevent burst errors (cf. Japanese Unexamined Patent Application Publication No. 2003-242728). The ECC block is then modulated by a modulation mechanism called 1-7PP (Parity Preserve/Prohibit RMTR) modulation to limit run length and recorded on a disc.
The recording data contained in the ECC block of a Blu-ray disc is arranged as shown in FIG. 2. The recording data is not yet been rotated nor constitutes the ECC block together with auxiliary data. This is referred to herein as the recording unit block. If the column direction is a data input sequence (referred to herein as the encoding sequence) when adding EDC, the recording data is recorded on a disc in the row direction.
In Blu-ray discs, 4-byte EDC to be added to 2048-byte user data is calculated by sequentially inputting data (code string) of 2048 bytes added with 4 bytes of 0 data into a shift register in the above encoding sequence to perform a predetermined operation. It is possible to detect an error in the code string composed of the 2048-byte user data and the calculated 4-byte EDC by inputting the code string into the same shift register in the same sequence.
However, since complex interleaving processing is performed so as to accurately reproduce the data that is recorded on a disc with a high density in Blu-ray discs, the code strings are recorded in a different sequence than the encoding sequence, which is referred to herein as the recording sequence. Therefore, the sequence of the read data does not correspond to the sequence of encoding and it is thus impossible to perform processing such as error detection as it is.
For this reason, conventional optical disc apparatus read all the data in one recording unit block, temporarily store it into a buffer, and then read it out in the same sequence as encoding so that the encoding sequence and the error detecting sequence are the same to allow correct operation.
However, the present invention has recognized that the process of loading all code strings (recording unit blocks) contained in the ECC block once into a buffer, rearranging the data in the recording sequence into the encoding sequence and inputting the rearranged data into the shift register to obtain an error detecting value requires an apparatus to have a large buffer memory to store all the data in the recording unit blocks. In addition, memory access that occurs for error detection reduces the throughput of buffer memory access.